package com.kun.service.service;

import com.kun.dto.PageTable;
import com.kun.dto.ProcessDefinitionDto;
import com.kun.vo.ProcessDefinitionVo;
import org.activiti.engine.repository.ProcessDefinition;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface IProcessDefinitionService {

    /**
     * 查询单个流程定义
     */
    ProcessDefinition selectByDefinitionId(String definitionId);

    /**
     * 查询流程定义列表
     */
    PageTable selectDefinitionList(ProcessDefinitionDto processDefinitionDto);

    /**
     * 查询流程定义
     */
//    List<ProcessDefinitionVo> selectList(ProcessDefinitionDto processDefinitionDto);

    /**
     * 根据流程定义ID查询流程定义
     */
    ProcessDefinitionVo selectListById(List<ProcessDefinitionVo> processDefinitionVoList, String processDefinitionId);

    /**
     * 获取流程定义的xml文件
     */
    String getXml(String deploymentId, String resourceName);

    /**
     * 保存流程定义
     */
    boolean saveDefinition(String xml, String name);

    /**
     * 上传流程定义文件
     */
    boolean uploadBpmn(List<MultipartFile> files);

    List<ProcessDefinitionVo> selectList();

    /**
     * 删除流程定义
     */
    boolean deleteDefinitionById(String processDefinitionId);
}
